public class Solution1400 {
    /**
     * 给你一个字符串 s 和一个整数 k 。请你用 s 字符串中 所有字符 构造 k 个非空 回文串 。
     *
     * 如果你可以用 s 中所有字符构造 k 个回文字符串，那么请你返回 True ，否则返回 False 。
     *
     * 来源：力扣（LeetCode）
     * 链接：https://leetcode-cn.com/problems/construct-k-palindrome-strings
     * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
     */
    public boolean canConstruct(String s, int k) {
        int r = s.length();
        int[] arr = new int[26];
        for (int i = 0; i < r; i++){
            arr[s.charAt(i) - 'a']++;
        }
        int l = 0;
        for (int i = 0; i < 26; i++) {
            if (arr[i] % 2 == 1) {
                l++;
            }
        }
        l = Math.max(l, 1);
        return l <= k && k <= r;
    }
}
